A networked domain may have a number of devices responsible for routing the traffic around the network. These devices may be routers, servers, and other network hardware and software that support layer 2 and layer 3 network layers, which are data link layers of the International Standards Organization's (“ISO”) Open System Interconnection (“OSI”) standard for networking. Within any given network, there may be multiple routes and redundant back-up routes between the devices to ensure network integrity when one or more devices fail.
As a network grows, devices may be moved, added, removed, or replaced. Thus, the routes between the devices may be moved or altered. As a result, any documentation of the original network design may be outdated. When problems occur, troubleshooting may be difficult without accurate information about the network's topology.
Some devices may include special hardware or functions that allow them to determine their connections. The special hardware or functions may be used to determine the connections at each device, compile the information, and determine the topography of the network. However, each device must include the special hardware or functions to compile the information.
Packet Internet Groper (“PING”) is a known function that may send an Internet Control Message Protocol (“ICMP”) packet to a specified address of a device and wait for a reply from the device. If a reply is received, then a connection to the addressed device is confirmed. However, PING does not determine each connection to a device. Further, PING is not be able to determine an address for an unknown device.
Traceroute is another known function that may be used to trace out packet routes through Internet connections. Traceroute traces the route that a packet sent from one device takes, shows how many hops the packet takes, and identifies the device at each hop. Traceroute operates by sending packets with a time-to-live (“TTL”) field set to a low value. When a packet does not reach its destination because the number of hops exceeds the TTL value, the last host that the packet did reach returns the packet and identifies itself. Traceroute sends a series of packets and increments the TTL of each one. Each failed packet is returned with an identification of the next host. By sending multiple packets, the identity of the device at each hop on the way to the destination may be determined. Traceroute may be used to determine a route between a source device and a destination device, but it does not determine back-up routes, alternative paths, or the topology of the network. It is also dependent on the particular path that a packet takes at the time that the utility is run. Accordingly, the information that may be obtained is very limited.
The present disclosure is directed to overcoming these limitations in order to obtain a better understanding of a network's topology.